<?php
/**
 * Throw if a method called with a unsupported param or a required param is missing.
 *
 * PHP versions 5
 *
 * Copyright (C)
 * This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
 * of ERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software
 * Fundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA
 *
 * @author Bastian Schröder <bs@chemanet.de>
 * @version 2007-12-11
 * @package rail
 */
class rail_param_exception extends rail_exception {

	/**
	 * Constructor.
	 *
	 * @param rail_object $pRailObject
	 * @param string $pParam
	 * @param mixed $pValue
	 * @param string $pMessage
	 */
	public function __construct ( $pRailObject, $pParam, $pValue, $pMessage = null ){
		$value = is_object( $pValue ) ? get_class( $pValue ) : print_r( $pValue, true );

		parent::__construct( $pRailObject, "param '$pParam' with unsupported value '$value'." . ( $pMessage != null ? ' ' . $pMessage : '' ) );
	}

} // End of rail_param_exception
?>